System and Method of Providing Social Caller ID and Caller Rating on Web Calls

ABSTRACT

A method is provided for providing caller ID for a caller. An indication is received from a social networking site on which a caller has a profile that the caller has signed into the social networking site. A request is received from the caller to place a call to a callee. The system automatically associates at least one aspect of the caller&#39;s profile from the social networking site with the call request. The system then signals to the callee that there is a new call by displaying the call request with the at least one aspect of the caller&#39;s profile from the social networking site. A method is also provided for enhancing a callee&#39;s control over receiving a call. A method is also provided for facilitating web calling by a caller.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.14/560,607, entitled “System and Method of Providing Social Caller IDand Caller Rating on Web Calls,” filed Dec. 4, 2014, which claims thebenefit of U.S. Provisional Patent Application No. 61/912,175, filedDec. 5, 2013 entitled “System and Method of Providing Social Caller IDand Caller Ratings on Web Calls,” all of which are incorporated hereinby reference.

FIELD OF INVENTION

The field of invention is generally related to real-time communicationssystems and in particular to real-time communications over the web.

BACKGROUND

The traditional telco caller ID is antiquated and does not provideadequate information about the caller. Existing solutions give littledetail or indication as to who may be calling and are limited to callerID/name or account names. Existing solutions for reaching an individualperson with voice or video communications generally rely on largeinfrastructure within an organization or the user having dedicated andcomplicated setups.

Also lacking is an adequate solution allowing call recipients to ratesystem abusers or those who negatively utilize the system (i.e. crankcallers, telemarketers and fax “spammers”), or to set preferences forhandling different call sources i.e. public call versus internal call,corporate call versus personal call.

With the recent rise and proliferation of social media networks, thesocial graph comes into the spotlight. Today most social media networksare web-based and also provide means for people to interact with eachother through e-mail, instant messaging, online chats etc. Social medianetworks allow people to share ideas, activities, events, and interestswithin their individual networks. Social media networks have a wealth ofinformation about users and their connections in the form of a socialgraph. A social graph is a representation of the interconnection ofrelationships in an online social network. A social graph is a mappingof people and how they are related or connected to other people. Thelinks between people in social networks are of different types; and thedifferent types of relationships can be a friend, a co-worker, a familymember, a classmate, a schoolmate etc.

Typically a social media network stores a representation of each personvia a profile; each person's social connections and their interests.Profiles often have a section dedicated to comments from friends andother users. To protect user privacy, social networks typically havecontrols that allow users to choose who can view their profile, contactthem, add them to their list of contacts, and so on.

Given this wealth of information being available about the user onsocial media network(s), it would be desirable to utilize thisinformation when users are calling or being called.

SUMMARY

Broadly speaking, the invention provides a system and method that allowsa user to create a WebCallingAlias, using which other users (callers)may be able to reach the callee (user who created the WebCallingAlias).The caller may be a registered user of the system or may not be aregistered user.

A WebCallingAlias can be used to facilitate calling the user. Thepresent system and method leverages existing web and browser technologyprotocols e.g. WebRTC, HTML5 to make a broadly compatible solution thatis easily accessed by users. For example, the caller and callee may beconnected using WebRTC. The end points or devices where a call may beoriginated and a call may be terminated may include but are not limitedto a traditional phone (POTS), PSTN, PBX, Smartphone, tablet, PC, anyinternet connected device capable of voice or video call, or other typeof messaging.

The WebCallingAlias may be augmented with the social profile of a userand the system may acquire this information from the social medianetwork(s) that a user prefers e.g. Facebook, Linkedin, Google+. Withthe proliferation of social network profiles, the association of thesedetails enables receivers of such calls to make more informed decisionsand take appropriate actions.

A user may be able to set calling preferences as to which device is tobe called, and set presence and availability preferences and privacypreferences as to who can reach them using the WebCallingAlias.

The system and method may also provide a mechanism for a user to havemultiple WebCallingAliases. A user may opt to use each WebCallingAliasin a different scenario e.g. one WebCallingAlias that can be embedded inan e-mail signature and enables specific “corporate” flow ofcommunications in terms of reachability and priority; while anotherWebCallingAlias that can be published on a public website as a directorycalling link.

A user may be able to embed the WebCallingAlias as a WebLink in ane-mail so that any recipient of that e-mail may be able to click on theWebCallingAlias and start a communications session e.g. a voice callwith the user. Similarly a user may be able to embed the WebCallingAliasin an e-mail signature, a web page, an SMS, an IM message etc.

In one embodiment the contact lists of other users of the system areautomatically updated with the WebCallingAlias of those users who havenewly created it or have modified it.

One embodiment incorporates a “social rating” system that aims toprovide extra information about the caller. The rating system may beshared among other system users and may help prevent abuse by enablingcorrect identifications of user account types i.e. organization,individual, etc. The rating mechanism may allow a callee to rate acaller as a spammer, a telemarketer, a sales agent etc.

In one embodiment a caller's social profile and rating are acquired fromthe social media network(s) and the system as the call is beingestablished between the caller and the callee. The call may be a voicecall, a video call, SMS, IM or other form of communications. If calleeis busy or does not accept the call from the caller, then the system andmethod of invention allows a caller to leave a message, and in case thecaller chooses not to leave a message, a missed call notification isdisplayed to the callee along with the social profile and the rating ofthe caller.

Without limiting the solution to enterprise users, the solution aims toprovide a voice and/or video WebCallingAlias that enables a callee to bereached by the other users of the system, or the general public; whilealso enabling reliable identification of the caller. Thus the system andmethod enables an individual user (e.g. a consumer) to subscribe to andutilize/manage the WebCallingAlias for themselves. While it also enablescorporate signups for an organization to deploy the system to corporateend users as a “directory” service for their organization withpre-defined WebCallingAliases.

According to a first aspect of the invention, a method is provided forproviding caller ID for a caller. An indication is received from asocial networking site on which a caller has a profile that the callerhas signed into the social networking site. A request is received fromthe caller to place a call to a callee. (Note that the request mayprecede logging in to the social networking site, or vice versa.) Atleast one aspect of the caller's profile from the social networking siteis automatically associated with the call request. A signal is providedto the callee that there is a new call. The call request is displayedwith the at least one aspect of the caller's profile from the socialnetworking site (i.e. in the form of a WebCallingAlias, as referred toelsewhere in this disclosure).

The at least one aspect of the caller's profile may be accessed from thesocial networking site itself directly, or it may be accessed from alocal database (having previously been cached, for example). The callerneed not have logged into the social networking site expressly for thepurpose of placing a call. The system may detect or have accessed orstored aspects of the caller's profile from a previous login unrelatedto the call.

Except where context expressly specifies otherwise, the term “socialnetworking site” or “social network” is used herein to refer to bothtraditional social networking sites (e.g. Facebook, LinkedIn, Twitter,Google+, etc.) where users sign on for the express purpose of networkingsocially with other users, as well as, other third party services orwebsites that provide a means for identifying unique users out of auserbase with individual profiles (e.g. Gmail, Outlook, specificinterest and directory websites, etc.) whether or not used expressly fornetworking or connecting socially or professionally.

In one embodiment, the request is triggered by selection of the calleefrom the social networking site. For example, the caller may be able tosearch for the callee on the social networking site prior to making therequest.

The at least one aspect of the profile may be various things, e.g. animage or a photo associated with the caller, and/or a name, username,nickname, or alias of the caller.

If no connection is made with the callee, the caller may be allowed toleave a message for the callee. The system provides a notifier to thecallee that there is a message waiting, which includes the at least oneaspect of the caller's profile from the social networking site.

In the event of a missed call, the system may provide a missed callnotifier to the callee, which includes the at least one aspect of thecaller's profile from the social networking site.

After the call, the callee may be allowed to rate the caller with arating. This may be stored in association with the caller's profile. Therating may be compiled with other ratings of that caller from othercallees to form an aggregate rating. In one embodiment, the aggregaterating is displayed with future call requests from that caller.

According to a second aspect of the invention, a method is provided forenhancing a callee's control over receiving a call. An interface isprovided by which a callee can set at least one rule to designatecertain individuals or categories of individuals from whom the calleewishes to receive a call. These designated individuals or categories maybe based on the callee's contacts in a social networking site. When arequest is received from a caller to place a call to the callee, thesystem automatically determines whether the caller is one of thedesignated individuals or in one of the designated categories. If so,the call is permitted to be connected, and the call is identified to thecallee by displaying at least one aspect of the caller's profile fromthe social networking site.

In one embodiment, the category is a minimum aggregate rating of acaller (or a rating category or status, e.g. spam, telemarketer, salesagent, etc.).

The at least one rule may also be time- or date-dependent. The calleemay also specify for a call to be routed to a specific device associatedwith the callee in the at least one rule.

According to a third aspect of the invention, a method is provided forfacilitating web calling by a caller. An interface is provided whereby acallee can associate at least one aspect of the callee's profile from asocial networking site with the callee's phone number or callingaddress. A link (such as a web-accessible link) can be created for thecallee, the appearance of which includes the at least one aspect of thecallee's profile. The callee is then enabled to paste or embed the linkinto an email or a web page, such that actuation of the link by a callerwill initiate a web call to the callee's phone number or callingaddress.

“Web calling” and “web call” in the present context simply refer to anynon-PSTN initiated call, including but not limited to voice or videocalls over WebRTC, and including app-to-app calls.

Preferably, the link is stored with the callee's profile. Preferably,the link is updated automatically as the callee's profile on the socialnetworking site is updated.

The method may further enable the callee to provide a photo or thesystem may acquire a photo of the callee (e.g. using the callee's devicecamera) for association with the callee's phone number or callingaddress.

In one embodiment, the web call is a voice or video call over WebRTC.

The invention may also be embodied in a system. For example, a systemmay be provided for providing caller ID for a caller. A caller IDgenerating module may be provided for reviewing a profile of a socialnetworking site at which the caller has a profile, and selecting atleast one aspect of the profile to form a WebCallingAlias for thecaller. A call routing module may also be provided for receiving arequest from the caller to place a call to a callee, and displaying thecaller's WebCallingAlias to the callee when the call is placed.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 is a flow diagram illustrating creation of a WebCallingAliasaccording to an aspect of the present invention.

FIG. 2 is a flow diagram illustrating setting user preferences.

FIG. 3 is a flow diagram illustrating integration with user contactdatabases.

FIG. 4 is a flow diagram illustrating embodiment of a WebCallingAlias inan email signature and initiating a call from the embedded link.

FIG. 5 is a flow diagram illustrating embodiment of a WebCallingAlias ona web page and initiating a call from the embedded link.

FIG. 6 is a flow diagram illustrating process for acquiring a photographand a rating status for the user and subsequent call process.

FIG. 7 a is a flow diagram illustrating sample call process from Caller1to User1.

FIG. 7 b is a flow diagram illustrating connecting a call from Caller1to User1 (following the process in FIG. 7 a).

FIG. 8 is a flow diagram illustrating post-call rating.

DETAILED DESCRIPTION

Before embodiments are explained in detail, it is to be understood thatthe invention is not limited in its application to the details of theexamples set forth in the following descriptions or illustrateddrawings. The invention is capable of other embodiments and of beingpracticed or carried out for a variety of applications and in variousways. Also, it is to be understood that the phraseology and terminologyused herein is for the purpose of description and should not be regardedas limiting.

Before embodiments of the software modules or flow charts are describedin detail, it should be noted that the invention is not limited to anyparticular software language described or implied in the figures andthat a variety of alternative software languages may be used forimplementation.

It should also be understood that many components and items areillustrated and described as if they were hardware elements, as iscommon practice within the art. However, in at least one embodiment, thecomponents of the method and system are actually implemented insoftware.

The present invention may be embodied as a system, method or computerprogram product. Accordingly, the present invention may take the form ofan entirely hardware embodiment, an entirely software embodiment(including firmware, resident software, micro-code, etc.) or anembodiment combining software and hardware aspects that may allgenerally be referred to herein as a “circuit,” “module” or “system.”Furthermore, the present invention may take the form of a computerprogram product embodied in any tangible medium of expression havingcomputer usable program code embodied in the medium.

Computer program code for carrying out operations of the presentinvention may be written in any combination of one or more programminglanguages, including an object oriented programming language such asJava, Smalltalk, C++ or the like and conventional procedural programminglanguages, such as the “C” programming language or similar programminglanguages. Computer code may also be written in dynamic programminglanguages that describe a class of high-level programming languages thatexecute at runtime many common behaviours that other programminglanguages might perform during compilation. JavaScript, PHP, Perl,Python and Ruby are examples of dynamic languages. Additionally computercode may also be written using a web programming stack of software,which may mainly be comprised of open source software, usuallycontaining an operating system, Web server, database server, andprogramming language. LAMP (Linux, Apache, MySQL and PHP) is an exampleof a well-known open-source Web development platform. Other examples ofenvironments and frameworks using which computer code may also begenerated are Ruby on Rails which is based on the Ruby programminglanguage, or node.js which is an event-driven server-side JavaScriptenvironment.

In a preferred embodiment the program code may execute entirely on theserver (or a cluster of servers), partly on a server and partly on auser's computer, as a standalone software package, partly on the user'scomputer and partly on a remote computer or entirely on the remotecomputer or server. In the latter scenario, the remote computer may beconnected to the user's device e.g. a Smartphone through any type ofnetwork, including a local area network (LAN) or a wide area network(WAN), or the connection may be made to an external computer (forexample, through the Internet using an Internet Service Provider).

A device that enables a user to engage with an application using theinvention, including a memory for storing a control program and data,and a processor (CPU) for executing the control program and for managingthe data, which includes user data resident in the memory and includesbuffered content. The computer may be coupled to a video display such asa television, monitor, or other type of visual display while otherdevices may have it incorporated in them (iPad). An application or agame or other simulation may be stored on a storage media such as a DVD,a CD, flash memory, USB memory or other type of memory media or it maybe downloaded from the internet. The storage media can be inserted tothe device where it is read. The device can then read programinstructions stored on the storage media and present a user interface tothe user. The code is specialized to execute functions described hereinwhich enable a smoother and more efficient technological process. Itshould be noted that the terms computer, device, smartphone etc. havebeen used interchangeably but imply any device that allows a user toaccess the social network and social graph.

FIG. 1 is a flow diagram of certain overarching concepts of oneembodiment of the method 100. The system provides web based system ofvoice and video communications 101. In a preferred embodiment the systemand method provide a mechanism to enable voice and video communicationson traditional phones (PSTN), PBX, Smartphones, tablets, computers, PCand other connected devices.

In a preferred embodiment, the voice or video session may be establishedbetween end devices using technologies like WebRTC which include thefundamental building blocks for communications on the web such asnetwork, audio and video components used in voice and video chatapplications. These components, when implemented in a browser, allowaccess the camera and microphone, enables sets up of audio and videocalls as well allows web browsers to share data via peer-to-peer.

The PSTN (Public Switched Telephone Network) is the aggregate of theworld's circuit-switched telephone networks that are operated bynational, regional, or local telephony operators, providinginfrastructure and services for public telecommunication. The PSTNconsists of telephone lines, fiber optic cables, microwave transmissionlinks, cellular networks, communications satellites, and underseatelephone cables, all interconnected by switching centers, thus allowingany telephone in the world to communicate with any other. Originally anetwork of fixed-line analog telephone systems, the PSTN is almostentirely digital in its core and includes mobile as well as fixedtelephones.

A PBX (Private Branch Exchange) is a telephone exchange that serves aparticular business or office, as opposed to one that a common carrieror telephone company operates for many businesses or for the generalpublic. PBXs make connections among the internal telephones of a privateorganization, usually a business, and also connect them to the PSTN viatrunk lines. Because they incorporate telephones, fax machines, modems,and more, the general term “extension” is used to refer to any end pointon the branch.

Traditionally text messaging is referred to sending and receiving shorttext messages using the Short Message Service (SMS). Text messaging isthe act of typing and sending a brief, electronic message between two ormore mobile phones or fixed or portable devices over a phone network. Ithas grown to include messages containing image, video, and soundcontent, known as Multi-media Messaging (MMS).

Instant messaging is a set of communication technologies used fortext-based communication between two or more participants over theInternet or other types of networks. IM-chat happens in real-time.Online chat and instant messaging differ from other technologies such asemail as they are real time communications by the users. Some systemspermit messages to be sent to users not they are off line, by sendingthe message to the associated email account.

The user signs up with the system 102. Signing up to a system is wellknown in the art and may require a user to provide their credentials, auser name and a password.

The system creates a unique user ID for the user 103. A unique user IDis provided to each user so that each user can be identified uniquely inthe system and the calls, messages, other notification may be correctlyrouted to their devices as per their preferences.

The server performs a search for the user on the social media networks104. A social media network is an online service or a platform or awebsite that provides the means for people to build their socialnetworks reflecting their social relationships with other people.

Facebook, Twitter, LinkedIn and Google+ are examples of the most popularsocial media networks. Social media networks share a variety oftechnical features. The most basic of these are visible profiles usuallywith a list of “friends” who are also users of the site. Some socialmedia networks allow people to upload pictures, add multimedia contentto uniquely individualize the look and feel of their profiles. Facebookeven allows people to enhance their profiles by adding modules orapplications.

The server connects to a social media network(s) and gathers a userprofile 105. Connectivity is exemplified by using Facebook as anexample. Other social media networks also provide well documented APIsfor connectivity and access to user information.

In one embodiment a social media network provides a social graph. Forexample Facebook offers a social graph that represents people and theconnections they have to other people or things that they may careabout. A social graph is a representation of the interconnection ofrelationships in an online social network. In mathematics a graph is anabstraction for modeling relationships between things. A graph consistsof nodes and edges, or things and the ways that these things relate toeach other. A social graph is a mapping of people and how they arerelated or connected to other people. In a social graph, each person isa node. There is an explicit connection, if two people know each other,for example, two people can be connected because they work together orbecause they went to school together or because they are married. Thelinks between people in social networks are of different types; and thedifferent types of relationships can be a friend, a co-worker, a familymember, a classmate, a schoolmate etc.

Facebook offers a well documented and established API, the Graph API,which presents a simple, consistent view of the Facebook social graph,uniformly representing objects in the graph (e.g., people, photos,events, and pages) and the connections between them (e.g., friendrelationships, shared content, and photo tags). The Graph API as suchallows a developer/application to access all public information about anobject. The Graph API allows an application to read properties andconnections of the Facebook social graph. A developer can use the API toread specific fields, get pictures of any object, introspect an objectfor metadata and get real-time updates on any changes.

Facebook Platform uses the OAuth 2.0 protocol for authentication andauthorization and supports two different OAuth 2.0 flows for user login:server-side (also known as the authentication code flow) and client-side(also known as the implicit flow). The server-side flow is used wheneveran application needs to call the Graph API from its web server. Theclient-side flow is used whenever an application needs to make calls tothe Graph API from a client, such as JavaScript running in a Web browseror from a native mobile or desktop application.

By default, a user is asked to authorize the application to access basicinformation that is available publicly or by default on Facebook. If anapplication needs more than this basic information to function, it mustrequest specific permissions from the user. This is accomplished byadding a scope parameter to the OAuth Dialog request followed by commaseparated list of the required permissions.

An application can access people and pages with usernames, where theirusername is an ID. Getting an access token for a user with no extendedpermissions allows an application to access the information that theuser has made available to everyone on Facebook. If an application needsspecific information about a user, like their email address or workhistory, it must ask for the specific extended permissions. Thereference documentation for each Graph API object contains details aboutthe permissions an application needs to access each connection andproperty on that object.

With a valid access token an application can invoke the Graph API byappending the access_token parameter to Graph API requests. If the userchanges their password, the access token expires. An application canrequest a new access token by re-running the appropriate process.

Every object in the social graph has a unique ID. A developer can accessthe properties of an object by sending a secure request using the URLhttps://graph.facebook.com/ID. Additionally, people and pages withusernames can be accessed using their username as an ID. All responsesto these requests are sent as JSON objects.

All of the objects in the Facebook social graph are connected to eachother via relationships. A developer can examine the connections betweenobjects using the URL structurehttps://graph.facebook.com/ID/CONNECTION_TYPE. The Facebook QueryLanguage (FQL) object enables running FQL queries using the Graph API.Facebook Query Language enables a developer to use an SQL-styleinterface to query the data exposed by the Graph API. It provides forsome advanced features not available in the Graph API, includingbatching multiple queries into a single call.

-   -   friendlist    -   Query this table to return any friend lists owned by the        specified user.    -   friendlist_member    -   Query this table to determine which users are members of a        friend list.

The server creates a WebCallingAlias for the user 106. In one embodimenta user receives a suggested WebCallingAlias from the server. The usercan also opt to create a more unique alias if they prefer.

A mechanism may also be provided for a user to create multipleWebCallingAliases. For example one WebCallingAlias may be for embeddingin the user's e-mails while another may be for displaying on a publicwebsite. Each WebCallingAlias may have its own unique preferences.

One embodiment may preferably include a management interface allowing auser or organization to setup the user accounts for the WebCallingAliasvia a web page or a console, or other such method either for themselvesor on behalf of other individuals.

The management interface may preferably include but is not limited toproviding mechanisms for allowing the setting up of preferences forsources of calls, minimum required ratings, allowed social identifiers(e.g. restricting to LinkedIn only for corporate users). The managementinterface may include pre-defining rule sets and availability settingsfor calls to a user or a group of users (e.g. a call centeradministrator may enable calling to the users of the system only betweenbusiness hours and not on holidays). The management interface mayinclude mechanisms for the enablement of remittance of payment(s) forservices with one time, repeated subscription or other payment models.

FIG. 2 shows one embodiment 200 where a user can set differentpreferences for the WebCallingAlias, e.g. user call preferences 201. Theuser may be allowed to define these preferences via a user interface, onwhen and how calls will be delivered to the user. Call preferences inthis context imply where the user may want to receive calls. Since mostpeople have multiple devices where they receive voice, video or textcommunications, the user may be allowed to define which communicationsare routed to which devices. Thus for example a user may opt to receivephone calls from 9:00 am to 5:00 pm on the user's office number, whileon the road receive calls on the user's mobile device and at night andweekends receive calls on the user's home number.

In one embodiment, a user may be able to define multiple end points inthese preferences including a mobile phone, personal computing systems,or plain old telephone service (POTS) phones, as well as other types ofend devices as well as other types of end devices capable of voice,video, text or other type of communications.

The user can also set user presence and availability preferences 202.Presence refers to the ability to detect the electronic presence ofother users who are connected to the Internet, through a PC or mobiledevice, and whether they are available in real time. Presenceinformation has wide applications in many communication services and arecommonly used in applications like instant messaging clients, anddiscussion forums, VoIP clients etc.

Presence is a status indicator that conveys ability and willingness of apotential communication partner. A user's client provides presenceinformation (presence state) via a network connection to a presenceservice, which is stored in what constitutes his personal availabilityrecord and can be made available for distribution to other users toconvey the availability for communication.

The user can also set user privacy preferences 203 regarding who can seethe user's presence and the granularity of the user's presence,collectively privacy options.

In one embodiment call settings and preferences may preferably beautomatically defined based on a user's calendar events (Outlook orGoogle Calendar events). For example, when a user is in a meeting withother colleagues, the user can opt to send calls to voicemail.

In another embodiment call settings may be defined based on the physicallocation of the user, e.g. gathering the location of the user via mobilelocation services and/or GPS. For example when a user is at the golfcourse, the user can opt to send calls to voicemail.

In yet another embodiment call settings may be defined based the devicebehaviour e.g. detecting physical orientation of a device and if thedevice is face up, letting the call through, while if the device is facedown sending the call to voicemail. In another example a user'sengagement on a device e.g. user idleness at desktop determines how acall is handled.

In one embodiment there may be default settings and a user may opt toeither accept these default settings or may opt to modify these settingsfor personalization to suit their needs. A user may define more than oneend point (e.g. a PC or a Mobile device) on which they may prefer toreceive their communications.

One embodiment may preferably include predictive logic based on thebehaviour and actions taken by a callee in the past. For example if acallee has rejected or sent a call to voicemail several times in thepast, (chances are they do not wish to talk to the caller) soautomatically reject the call going forward. The system may provide anoption for a callee to confirm or undo predictive logic acquired as aresult of the callee actions or behaviour. The system may also providean option to request social feedback rating from the callee on theirrepeated actions or behaviour i.e. why did the callee reject the callfrom a particular caller repeatedly.

In case of multiple WebCallingAliases, a user may be required to carryout this process multiple times.

FIG. 3 shows one embodiment 300 showing automatic updating of usercontact lists with the newly created WebCallingAlias(es). The serverstores the WebCallingAlias of new users 301. New WebCallingAliases maybe stored in a database.

Users may provide permission for the system to “auto-update” theircontact database 302.

A system service “crawls” all user's contact database 303. The serviceupdates any record belonging to the new user with the newly createdWebCallingAlias (es) 304.

FIG. 4 shows one embodiment 400. User1 embeds WebCallingAlias as aWebLink in the user's signature 401. HTML offers many of theconventional publishing idioms for rich text and structured documents,including hypertext and interactive documents. The WebLink, hyperlink orlink is a basic hypertext construct. The default behavior associatedwith a link is the retrieval of another Web resource; which may be anyWeb resource e.g., an image, a video clip, a sound bite, a program, anHTML document, an element within an HTML document, etc.

In e-mail and other electronic text communications a signature orsignature block allows users to set one or more lines of custom textknown to be automatically appended to their messages. A signature is ablock of text that is appended to the end of an e-mail message you send.Generally, a signature is used to provide the recipient with the sendersname, e-mail address, business contact information, or website. Thesignature can include text or graphic images.

User1 sends an e-mail to User2 402. User2 may or may not be a registereduser of the system.

User2 receives an e-mail from User1 403. When User2 clicks onWebCallingAlias as WebLink in signature of User1 404, a video callsession may be established via the server 405. In another embodiment thecall session may be a voice call.

The voice or video session may be established using technologies likeWebRTC. WebRTC is an open source project that enables web browsers withReal-Time Communications (RTC) capabilities using JavaScript APIs. Itincludes the fundamental building blocks for communications on the websuch as network, audio and video components used in voice and video chatapplications. These components, when implemented in a browser, can beaccessed through a Javascript API, enabling developers to implementtheir own RTC web app. Major components of WebRTC include:

GetUserMedia: allows a web browser to access the camera and microphone

PeerConnection: enables sets up audio/video calls

DataChannels: allows web browsers to share data via peer-to-peer

One embodiment may include parallel real time services along with thevideo and voice communication session including but not limited to textbased chat e.g. instant messaging (IM), screen or content (presentation)sharing, launching access to cooperative or independent third partyapplications (for example remote assistance) etc.

FIG. 5 shows one embodiment 500. User1 embeds his WebCallingAlias asWebLink on a web page 501.

User2 accesses the web page and selects User1 502. User2 may or may notbe a registered user of the system.

When User2 clicks on WebCallingAlias of User1 as a WebLink on the webpage 503, a video call session may be established via the server 504.Alternatively, the call may be a voice call over PSTN.

FIG. 6 shows one embodiment 600. User2 calls User1 using the system 601.

User1 receives a call on a device as per User1 preferences or presence602.

The system may acquire a photo of User2 from the social media networke.g. Facebook to be used in the WebCallingAlias of User2 603. In oneembodiment LinkedIn is preferably used for corporate and enterprise userwhile Facebook is used for consumers (individual users).

The system may check if a photo of User2 is available from the socialmedia network 604. If No 604 a, no photo of User2 is available from thesocial media network, then the system may take a photo of User2 using acamera on the device that User2 is using e.g. a Smartphone or a tablet605.

If Yes 604 b, a photo of User2 is available from the social medianetwork, then the system displays to User1 the WebCallingAlias of User2along with the photo of User2 606.

The system may also display User2's rating status (if available) on thesystem to User1 607.

The system checks if User1 accepted the call from User2 608. If Yes 608b, User1 accepted the call from User2, then the system establishes acall session between devices of User1 and User2 609.

If No 608 a, User1 did not accept the call from User2, then User2 may beallowed to leave a message 610. The message can be video, voice, text,multimedia or other.

The system may check if User2 left a message 611. If No 611 b, User2 didnot leave a message for User1, then the system may display a missed callto User1 and include User2's WebCallingAlias along with aspects of hissocial profile and his photo 612.

If Yes 611 a, User2 did leave a message for User1, then the system maynotify User1 of the message received from User2 613. The messagereceived/message waiting notification may be but is not necessarilylimited to a visual indication e.g. a flashing light, text, or anauditory indication e.g. several short beeps, or both visual andauditory indications.

Turning to another embodiment as shown in FIGS. 7 a and 7 b, Caller1,who is not a registered user of system of invention, may call User1using system 701.

Caller1 is asked to identify themselves by their social profile(s) 702.

User1 receives a call on a device as per User1 preferences or presence703.

The system may acquire a photo of Caller1 from a social media networke.g. Facebook to be used in the WebCallingAlias of Caller1 704.

The system checks whether a photo of Caller1 is available from thesocial media network 705. If No 705 a, no photo of Caller1 is availablefrom the social media network, then the system may take a photo ofCaller1 using a camera on the device that Caller1 is using e.g. aSmartphone or a tablet 706.

If Yes 705 b, a photo of Caller1 is available from the social medianetwork, then the system displays to User1 the WebCallingAlias ofCaller1 along with the photo of Caller1 707.

Caller1's rating status (if available) may also be displayed on thesystem to User1 708.

The system checks whether User1 accepted the call from Caller1 709. IfYes 709 b, User1 accepted the call from Caller1, then the systemestablishes a call session between devices of User1 and Caller1 710.

If No 710 a, User1 did not accept the call from Caller1, then the systemmay allow Caller1 to leave a message 711. The message can be video,voice, text, multimedia or other.

The system may check whether Caller1 left a message 712. If No 712 b,Caller1 did not leave a message for User1, then the system may display amissed call to User1 and include Caller1's WebCallingAlias along withhis social profile, photo and rating 713.

If Yes 712 a, Caller1 did leave a message for User1, then the system maynotify User1 of the message received from Caller1 714. The messagereceived/message waiting notification may be but is not necessarilylimited to a visual indication e.g. a flashing light, text, or anauditory indication e.g. several short beeps, or both visual andauditory indications.

FIG. 8 shows a rating mechanism 800. The rating mechanism is used tohelp other users by sharing ones experience with the caller. Callerratings may include but are not limited to telemarketer, spammer, etc.

The social nature of the internet has enabled the valuable use case ofbeing able to source “community” reviews and opinions of variousproducts, events, locations and more. People generally trust theopinions of their friends, peers, and associates and an individual ismore likely to choose a product, result, destination, etc. based onrecommendations from these groups. This enables invoking the analogy of“community social trust” that is leveraged for platforms such as Yelp,TripAdvisor, Google Reviews, etc. where the opinions of the communityare leveraged in helping individuals make decisions.

User1 receives and accepts a call using system 801. Devices where User1may receive the call from the Caller may include a traditional phone(POTS), PSTN, PBX, Smartphone, tablet, PC, any internet connected devicecapable of voice or video call, or other type of messaging. Such devicesmay be running any number of different operating systems as diverse asMicrosoft Windows family, MacOS, iOS, any variation of Google Android,any variation of Linux or Unix, PalmOS, Symbian OS, Ubuntu or suchoperating systems used for such devices available in the market today orthe ones that will become available as a result of the advancements madein such industries.

Upon completion of the call, User1 may be asked to rate the Caller 802.Instructions for performing the rating may be provided by a user via aninput to a touchscreen, a mouse, a keyboard, a stylus, a voicecontrolled user interface, and other such methods that may be familiarto the ones skilled in the art. One embodiment may use events as atrigger to initiate the rating process.

Another embodiment may use rules for rating. There may be some systemdefined base rules, and a user may also be able to add more rules tosuit their needs for rating. The rating of the caller may also depend onthe context and profiles.

The rating may be stored by the system for later use 803. In oneembodiment a mechanism for the rating of a caller is provided along withthe WebSocialCaller ID. The feedback received from callees about callersfrom whom they have received calls, forms a part of the WebSocialCaller“community social trust”. This enables positive and trusted callers tobe easily enabled with communication, even when communicating withpersons unknown to that user. Additionally negative ratings from calleesenables in the reduction of abuse of the system for purposes such asharassment, telemarketing, etc.

In one embodiment the WebCallingAlias(es) of user(s), their socialprofiles and ratings may be made available to other applications orservices. This may be achieved by providing an API to this aggregatedinformation so that other applications may also easily access thisinformation.

Devices where invention can be advantageously used may include but notlimited to a personal computer (PC), which may include but not limitedto a home PC, corporate PC, a Server, a laptop, a Netbook, tabletcomputers, a Mac, touch-screen computers running any number of differentoperating systems e.g. MS Windows, Apple iOS, Google Android, Linux,Ubuntu, etc. a cellular phone, a Smartphone, a PDA, an iPhone, an iPad,an iPod, an iPad, a PVR, a settop box, wireless enabled Blu-ray player,a TV, a SmartTV, wireless enabled connected devices, e-book readers e.g.Kindle or Kindle DX, Nook, etc. and other such devices that may becapable of text, voice and video communications. Other embodiments mayalso use devices like Samsung's Smart Window, Google Glasses, Corning'snew glass technologies, and other innovations and technologies that maybe applicable to the invention at present or in the future.

In some embodiments, the device is portable. In some embodiments, thedevice has a touch-sensitive display with a graphical user interface(GUI), one or more processors, memory and one or more modules, programsor sets of instructions stored in the memory for performing multiplefunctions. In some embodiments, the user interacts with the GUIprimarily through finger contacts and gestures on the touch-sensitivedisplay. In some embodiments, the functions may include providing mapsand directions, telephoning, video conferencing, e-mailing, instantmessaging, blogging, digital photographing, digital videoing, webbrowsing, digital music playing, and/or digital video playing.Instructions for performing these functions may be included in acomputer readable storage medium or other computer program productconfigured for execution by one or more processors.

It should be understood that although the term application has been usedas an example in this disclosure but in essence the term may also implyto any other piece of software code where the embodiments areincorporated. The software application can be implemented in astandalone configuration or in combination with other software programsand is not limited to any particular operating system or programmingparadigm described here.

Several exemplary embodiments/implementations have been included in thisdisclosure, but the intent is to cover all such areas that may benefitfrom the present system and method.

The above examples are not intended to be limiting, but are illustrativeand exemplary.

The examples noted here are for illustrative purposes only and may beextended to other implementation embodiments. While several embodimentsare described, there is no intent to limit the disclosure to theembodiment(s) disclosed herein. On the contrary, the intent is to coverall practical alternatives, modifications, and equivalents.

What is claimed is:
 1. A method of providing caller ID for a caller,comprising: receiving an indication from a social networking site onwhich a caller has a profile that the caller has signed into the socialnetworking site; receiving a request from the caller to place a call toa callee; automatically associating at least one aspect of the caller'sprofile from the social networking site with the call request; andsignalling to the callee that there is a new call by displaying the callrequest with the at least one aspect of the caller's profile from thesocial networking site.
 2. The method of claim 1, wherein the at leastone aspect of the caller's profile is accessed from the socialnetworking site directly.
 3. The method of claim 1, wherein the at leastone aspect of the caller's profile is accessed from a local database. 4.The method of claim 1, wherein the request is triggered by selection ofthe callee from the social networking site.
 5. The method of claim 4,further comprising enabling the caller to search for the callee on thesocial networking site prior to making the request.
 6. The method ofclaim 1, wherein the at least one aspect of the caller's profile is animage or a photo associated with the caller.
 7. The method of claim 1,wherein the at least one aspect of the caller's profile is a name,username, nickname, or alias of the caller.
 8. The method of claim 1,further comprising allowing the caller to leave a message for thecallee, and providing a notifier to the callee that there is a messagewaiting, the notifier including the at least one aspect of the caller'sprofile from the social networking site.
 9. The method of claim 1,further comprising providing a missed call notifier to the callee if thecall is not picked up by the callee, the missed call notifier includingthe at least one aspect of the caller's profile from the socialnetworking site.
 10. The method of claim 1, further comprising allowingthe callee to rate the caller with a rating after the call.
 11. Themethod of claim 10, wherein the rating is stored in association with thecaller's profile.
 12. The method of claim 11, wherein the rating iscompiled with other ratings of that caller from other callees to form anaggregate rating.
 13. The method of claim 12, wherein the aggregaterating is displayed with future call requests from that caller.
 14. Amethod of enhancing a callee's control over receiving a call,comprising: providing an interface by which a callee can set at leastone rule to designate certain individuals or categories of individualsfrom whom the callee wishes to receive a call, the designatedindividuals or categories being based on the callee's contacts in asocial networking site; when a request is received from a caller toplace a call to the callee, automatically determining whether the calleris one of the designated individuals or in one of the designatedcategories; and permitting the call to be connected if the caller is oneof the designated individuals or in one of the designated categories,wherein the call is identified to the callee by displaying at least oneaspect of the caller's profile from the social networking site.
 15. Themethod of claim 14, wherein the category is a minimum aggregate ratingof a caller.
 16. The method of claim 14, wherein the at least one ruleis time- or date-dependent.
 17. The method of claim 14, wherein the callis routed to a specific device associated with the callee based on theat least one rule.
 18. A method of facilitating web calling by a caller,comprising: providing an interface whereby a callee can associate atleast one aspect of the callee's profile from a social networking sitewith the callee's phone number or calling address; creating a link forthe callee, the appearance of which includes the at least one aspect ofthe callee's profile; and enabling the callee to paste or embed the linkinto an email or a web page, such that actuation of the link by a callerinitiates a web call to the callee's phone number or calling address.19. The method of claim 18, wherein the link is a web-accessible link.20. The method of claim 18, wherein the link is stored with the callee'sprofile.
 21. The method of claim 20, wherein the link is updatedautomatically as the callee's profile on the social networking site isupdated.
 22. The method of claim 18, further comprising enabling thecallee to provide a photo or acquiring a photo of the callee forassociation with the callee's phone number or calling address.
 23. Themethod of claim 18, wherein the web call is a voice or video call overWebRTC.